home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d27
/
func10.arc
/
FUNCT-10.PAT
next >
Wrap
Text File
|
1991-09-25
|
4KB
|
107 lines
FUNCT-10.PAT
This is a patch for QEMM-386 versions 5.10 to 5.13. It is not
useful on any other version of QEMM-386.
WHAT CAUSES THE PROBLEM?
Requesting a UMB: If a program tries to to use the XMS (eXtended
Memory Specification) to allocate a UMB (Upper Memory Block) there is a
bug in QEMM-386 that, under certain special circumstances, may cause a
reboot. Function 10 is the XMS function that allocates a UMB.
TO WHOM WILL IT HAPPEN?
Probably only to programs that are hooking INT 1 and paying
attention to 386 extended registers. PKUNZIP has been involved in all
reported cases of this problem. The reboot may occur when PKUNZIP is
executing or when another program runs after PKUNZIP or PKZIP has
executed. The problem will not happen if the high order byte of EAX is
zero when function 10 is invoked.
WHAT IS THE FIX?
Here is a patch to eliminate the problem on QEMM-386
versions 5.10 through 5.13:
1) Make a copy of the QEMM386.SYS file in your QEMM directory.
We are about to alter your current copy of QEMM386.SYS; the copy
you make will serve as a backup in case this operation fails.
COPY C:\QEMM\QEMM386.SYS C:\QEMM\QEMMOLD.SYS
(If your QEMM386.SYS is not located in the QEMM directory of
the C: drive, change the path accordingly.)
2) Go to the DOS directory on the hard disk and type:
DEBUG C:\QEMM\QEMM386.SYS
(If your QEMM386.SYS is not located in the QEMM directory of
the C: drive, change the path accordingly.)
Hit the Enter key; you should see the DEBUG prompt, which is a
hyphen.
3) At the DEBUG prompt, type:
S 100 L FF00 B3 B1 33 C9 9C
Hit the Enter key; DEBUG should return a segment address and offset
xxxx:yyyy
4) At the DEBUG prompt again, use the segment address and offset
that was just returned to give the DEBUG command:
E xxxx:yyyy B1 B1 33 C9 90
The addresses that DEBUG returned in step 3 should be used in
place of the addresses xxxx:yyyy and xxxx:zzzz, which we use as
examples. Hit the Enter the key after each command; the DEBUG
prompt should return in a moment.
5) At the DEBUG prompt, type:
S 100 L FF00 B8 1 0 9D
Hit the Enter key; DEBUG should return a segment address and
an offset:
xxxx:zzzz
6) At the DEBUG prompt again, use the segment address and offset
that was returned in step 5 to give the DEBUG command:
E xxxx:zzzz B8 1 0 FB
The address that DEBUG returned in step 5 should be used in place of
the address xxxx:zzzz, which we use as an example. Hit the Enter key;
the DEBUG prompt should return in a moment.
7) At the DEBUG prompt, type
W
Hit the Enter key; DEBUG will announce that it is writing a certain
number of bytes, then it will return the DEBUG prompt.
10) At the DEBUG prompt, type
Q
Hit the Enter key to exit DEBUG and return to DOS.
--------------------------------------------------
If the system fails after you perform this patch, copy the backup
of QEMM386 that you made back to its original name.
COPY C:\QEMM\QEMMOLD.SYS C:\QEMM\QEMM386.SYS
(If your QEMM386.SYS is not located in the QEMM directory of the
C: drive, change the path accordingly.)
You may then wish to try the above procedure again, in case a
mistake was made.
* * * E N D O F F I L E * * *